package com.rub.android.jetpack.model

import android.os.Parcel
import android.os.Parcelable

class User (var userName: String){}

class UserIdol(val cnName:String ,val enName: String,val imgUrl:String){}

data class ParcelUser(var userName: String?,var age:Int) : Parcelable{

    /**
     * as?是String就转换String类型
     * @see 参考学习文章 https://blog.csdn.net/lckj686/article/details/80448471
     * Parcelable序列化的readString与writeString的顺序必须要一样,否则会报错.
     * Eg: readString有userName、age 在writeString方法必须先userName再age
     */
    constructor(parcel: Parcel) : this(
        parcel.readString() as? String,
        parcel.readInt(),
    ) {}

    override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeString(userName)
        parcel.writeInt(age)
    }

    override fun describeContents(): Int {
        return 0
    }

    /**
     * 变量名称必须为CREATOR,否则Parcelable识别不了
     */
    companion object CREATOR : Parcelable.Creator<ParcelUser> {
        override fun createFromParcel(parcel: Parcel): ParcelUser {
            return ParcelUser(parcel)
        }

        override fun newArray(size: Int): Array<ParcelUser?> {
            return arrayOfNulls(size)
        }
    }

}